// packageC/address/addAndEdit/index.js

const {
    default: Toast
} = require('../../../miniprogram_npm/@vant/weapp/toast/toast');
const areaList = require('../../../utils/area');

Page({

    /**
     * 页面的初始数据
     */
    data: {
        areaList,
        type: null, // type等同于address_id
        showPopup: false,
        obj: {
            name: "",
            phone: "",
            area: "",
            detail: "",
            on_default: false
        },
        currentArea: [],
    },

    // 获取地址详情
    getAddressInfo() {
        wx.http.post(wx.api.oneaddress, {
            address_id: this.data.type
        }).then(res => {
            if (res.code === 1) {
                let _e = res.data
                this.setData({
                    obj: _e,
                    'obj.area': `${_e.province_name}/${_e.city_name}/${_e.area_name}`,
                    'obj.on_default': _e.is_default == 1 ? true : false
                })
            }
        })
    },

    //选择地址
    onConfirm(arr) {
        let {
            code,
            value
        } = arr.detail
        this.setData({
            currentArea: code,
            'obj.area': value.join('/'),
            showPopup: false
        })
    },

    onCancel() {
        this.setData({
            showPopup: false
        })
    },

    showArea() {
        this.setData({
            showPopup: true
        })
    },

    // 设置默认地址
    onChange(e) {
        this.setData({
            'obj.on_default': e.detail.value
        })
    },

    // type=0:新增地址、type>0:修改地址
    handleAddAndEdit(e) {
        if (this.data.type == 0) {
            this.handleAdd(e.detail.value)
        }
        if (this.data.type > 0) {
            this.handleEdit(e.detail.value)
        }
    },

    // 新增地址
    handleAdd(e) {
        if (!this.data.currentArea[3]) {
            wx.showToast({
                title: '请选择街道',
                icon: "none"
            })
        }
        wx.http.post(wx.api.addaddress, {
            name: e.name, //收货用户名
            phone: e.phone, //手机号
            province_id: this.data.currentArea[0], //省级id
            city_id: this.data.currentArea[1], //市级id
            area_id: this.data.currentArea[2], //区级id
            street_id: this.data.currentArea[3],
            // province_name: this.data.currentArea[0].name, //省名
            // city_name: this.data.currentArea[1].name, //市名
            // area_name: this.data.currentArea[2].name, //区名
            detail: e.detail, //详细地址
            is_default: this.data.obj.on_default == true ? 1 : 0 //是否默认 1-默认 0-非默认
        }).then(res => {
            if (res.code == 1) {
                wx.showToast({
                    title: '添加成功',
                    icon: 'none'
                })
                setTimeout(() => {
                    wx.navigateBack({
                        detail: 1
                    })
                }, 1000);
            } else {
                wx.showToast({
                    title: res.msg,
                    icon: "none"
                })
            }
        })
    },

    // 修改地址
    handleEdit(e) {
        let curr = false
        if (this.data.currentArea.length == 0) curr = false
        if (this.data.currentArea.length > 0){
            curr = true
            if (!this.data.currentArea[3]) {
                wx.showToast({
                    title: '请选择街道',
                    icon: "none"
                })
            }
        } 
        wx.http.post(wx.api.oneaddress, {
            handle: "ajax", //传ajax表示编辑
            address_id: this.data.type, //收货地址id
            name: e.name, //收货用户名
            phone: e.phone, //手机号
            province_id: curr == true ? this.data.currentArea[0] : this.data.obj.province_id, //省级id
            city_id: curr == true ? this.data.currentArea[1] : this.data.obj.city_id, //市级id
            area_id: curr == true ? this.data.currentArea[2] : this.data.obj.area_id, //区级id
            street_id: curr == true ? this.data.currentArea[3] : this.data.obj.street_id, //区级id
            // province_name: curr == true ? this.data.currentArea[0].name : this.data.obj.province_name, //省名
            // city_name: curr == true ? this.data.currentArea[1].name : this.data.obj.city_name, //市名
            // area_name: curr == true ? this.data.currentArea[2].name : this.data.obj.area_name, //区名
            detail: e.detail, //详细地址
            is_default: this.data.obj.on_default == true ? 1 : 0 //是否默认 1-默认 0-非默认
        }).then(res => {
            if (res.code === 1) {
                Toast.success('修改成功')
                setTimeout(() => {
                    wx.navigateBack({
                        detail: 1
                    })
                }, 1000);
            }
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this.setData({
            type: options.type
        })
        if (this.data.type == 0) {
            wx.setNavigationBarTitle({
                title: '新增地址',
            })
        }
        if (this.data.type > 0) {
            wx.setNavigationBarTitle({
                title: '修改地址',
            })
            this.getAddressInfo()
        }
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})